Java তে Custom Exception তৈরি করা খুবই সহজ, যা আপনাকে আপনার প্রয়োজন অনুযায়ী কাস্টম ত্রুটি (error) বা ব্যতিক্রম (exception) পরিচালনা করতে সহায়ক। আপনি যখন কোনও নির্দিষ্ট শর্তে ত্রুটি বা ব্যতিক্রম (exception) সৃষ্টি করতে চান, তখন কাস্টম এক্সসেপশন ব্যবহার করতে পারেন।
Java তে কাস্টম এক্সসেপশন তৈরি করতে আপনাকে একটি নতুন ক্লাস তৈরি করতে হবে যা Exception
বা RuntimeException
(ব্যবহারের প্রকারের ওপর নির্ভর করে) ক্লাস থেকে উত্তরাধিকারী হবে। কাস্টম এক্সসেপশন সাধারণত আপনার অ্যাপ্লিকেশনের বিশেষ ত্রুটি পরিস্থিতি পরিচালনার জন্য ব্যবহৃত হয়।
Exception
ক্লাস থেকে উত্তরাধিকারী ক্লাস তৈরি করা: আপনার কাস্টম এক্সসেপশন ক্লাসটি Exception
(বা RuntimeException
যদি আপনি আনচেকড এক্সসেপশন চান) থেকে উত্তরাধিকার নেবে।এখানে একটি কাস্টম চেকড এক্সসেপশন তৈরি করা হয়েছে, যা একটি নির্দিষ্ট শর্তে ফেলে দেয়। চেকড এক্সসেপশন এমন এক্সসেপশন, যা কেবলমাত্র কোডে explicit ভাবে হ্যান্ডেল করতে হয়।
InvalidAgeException
// Custom Checked Exception
public class InvalidAgeException extends Exception {
// কন্সট্রাক্টর
public InvalidAgeException(String message) {
super(message); // Exception এর superclass constructor কল করা
}
}
এখানে, InvalidAgeException
একটি কাস্টম চেকড এক্সসেপশন যা Exception
ক্লাস থেকে উত্তরাধিকারী। এর কন্সট্রাক্টর একটি ত্রুটি মেসেজ গ্রহণ করে যা এক্সসেপশন ঘটলে প্রদর্শিত হবে।
public class AgeValidator {
public static void validateAge(int age) throws InvalidAgeException {
if (age < 18) {
throw new InvalidAgeException("Age must be 18 or older");
} else {
System.out.println("Age is valid");
}
}
public static void main(String[] args) {
try {
validateAge(16); // এটি InvalidAgeException ছুড়ে দেবে
} catch (InvalidAgeException e) {
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
এখানে, validateAge
মেথডটি যদি ১৮ এর কম বয়স পাস করা হয়, তবে InvalidAgeException
ছুড়ে দেয়। main
মেথডে আমরা try-catch
ব্লক ব্যবহার করে এই কাস্টম এক্সসেপশনটি হ্যান্ডেল করেছি।
যদি আপনি একটি আনচেকড এক্সসেপশন (unchecked exception) তৈরি করতে চান, তাহলে আপনি RuntimeException
থেকে কাস্টম এক্সসেপশন ক্লাস তৈরি করবেন। এই ধরনের এক্সসেপশনগুলি যেকোনো সময় ফেলা হতে পারে এবং এগুলো হ্যান্ডেল করার জন্য try-catch
ব্লক বাধ্যতামূলক নয়।
NegativeValueException
// Custom Unchecked Exception
public class NegativeValueException extends RuntimeException {
// কন্সট্রাক্টর
public NegativeValueException(String message) {
super(message); // Exception এর superclass constructor কল করা
}
}
এখানে, NegativeValueException
একটি কাস্টম আনচেকড এক্সসেপশন যা RuntimeException
থেকে উত্তরাধিকারী।
public class ValueValidator {
public static void validateValue(int value) {
if (value < 0) {
throw new NegativeValueException("Value cannot be negative");
} else {
System.out.println("Value is valid");
}
}
public static void main(String[] args) {
try {
validateValue(-5); // এটি NegativeValueException ছুড়ে দেবে
} catch (NegativeValueException e) {
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
এখানে, validateValue
মেথডে যদি পাস করা মান নেগেটিভ হয়, তবে NegativeValueException
ফেলা হয়। এবং main
মেথডে try-catch
ব্লক ব্যবহার করে আমরা এই এক্সসেপশনটি হ্যান্ডেল করেছি।
Exception
ক্লাস থেকে উত্তরাধিকারী এবং এটি ট্রাই ক্যাচ ব্লক বা ডিক্লেয়ারেশন ব্যবহার করতে বাধ্য।RuntimeException
থেকে উত্তরাধিকারী এবং এটি ট্রাই ক্যাচ ব্লক ছাড়াই ফেলা এবং হ্যান্ডেল করা যেতে পারে।throw
এবং throws
: এক্সসেপশন ফেলার জন্য throw
ব্যবহার করা হয় এবং এক্সসেপশন ঘোষণার জন্য throws
ব্যবহৃত হয়।Java তে কাস্টম এক্সসেপশন তৈরি এবং ব্যবহারের মাধ্যমে আপনি অ্যাপ্লিকেশনের ত্রুটি পরিচালনা আরও শক্তিশালী এবং নমনীয় করে তুলতে পারবেন।
common.read_more